widget: Ignore events on unmapped widgets
authorTimm Bäder <mail@baedert.org>
Sun, 27 Jan 2019 05:29:45 +0000 (06:29 +0100)
committerTimm Bäder <mail@baedert.org>
Tue, 29 Jan 2019 06:19:54 +0000 (07:19 +0100)
There was a special case for GtkSearchBar, so remove that one.

gtk/gtksearchbar.c
gtk/gtkwidget.c

index 719732091478caf26621873dd157387943eb5958..3e2b55566960b4423c409e3babb37b4f265e7b23 100644 (file)
@@ -641,9 +641,6 @@ capture_widget_key_handled (GtkEventControllerKey *controller,
   GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
   gboolean handled;
 
-  if (!gtk_widget_get_mapped (GTK_WIDGET (bar)))
-    return GDK_EVENT_PROPAGATE;
-
   if (priv->reveal_child)
     return GDK_EVENT_PROPAGATE;
 
index d6d0189c87d0e773cee4f3d150c68161b0622d7a..a2b9fcdcf2bbe60535d581fa17233c62d216f24d 100644 (file)
@@ -5184,7 +5184,7 @@ translate_event_coordinates (GdkEvent  *event,
   gdk_event_set_coords (event, dx, dy);
 }
 
-static gint
+static gboolean
 gtk_widget_event_internal (GtkWidget      *widget,
                            const GdkEvent *event)
 {
@@ -5199,6 +5199,9 @@ gtk_widget_event_internal (GtkWidget      *widget,
   if (!event_surface_is_still_viewable (event))
     return TRUE;
 
+  if (!_gtk_widget_get_mapped (widget))
+    return FALSE;
+
   event_copy = gdk_event_copy (event);
 
   translate_event_coordinates (event_copy, widget);